<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Flow-IPC: ipc::transport::struc::Msg_mdt_out&lt; Struct_builder_config &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">Flow-IPC<span id="projectnumber">&#160;2.0.0</span>
   </div>
   <div id="projectbrief">Flow-IPC project: Full implementation reference.</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceipc.html">ipc</a></li><li class="navelem"><a class="el" href="namespaceipc_1_1transport.html">transport</a></li><li class="navelem"><a class="el" href="namespaceipc_1_1transport_1_1struc.html">struc</a></li><li class="navelem"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html">Msg_mdt_out</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-types">Private Types</a> &#124;
<a href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out-members.html">List of all members</a>  </div>
  <div class="headertitle"><div class="title">ipc::transport::struc::Msg_mdt_out&lt; Struct_builder_config &gt; Class Template Reference</div></div>
</div><!--header-->
<div class="contents">

<p>Internally used (data-free) addendum on-top of <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html" title="A structured out-message suitable to be sent via struc::Channel::send() (et al).">Msg_out</a>; really an alias to <code><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html" title="A structured out-message suitable to be sent via struc::Channel::send() (et al).">Msg_out</a>&lt;schema::detail::StructuredMessage&gt;</code>, where the latter is the internal-use set of metadata schema, with a convenience public mutating API wrapping around capnp-generated mutator API for things like message ID.  
 <a href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="msg__mdt__out_8hpp_source.html">msg_mdt_out.hpp</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ipc::transport::struc::Msg_mdt_out&lt; Struct_builder_config &gt;:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classipc_1_1transport_1_1struc_1_1Msg__mdt__out__inherit__graph.svg" width="379" height="71"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for ipc::transport::struc::Msg_mdt_out&lt; Struct_builder_config &gt;:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classipc_1_1transport_1_1struc_1_1Msg__mdt__out__coll__graph.svg" width="940" height="155"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-types" name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a66ddbd3c8d0a3512e60a214af6fb4713"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a66ddbd3c8d0a3512e60a214af6fb4713">Builder_config</a> = Struct_builder_config</td></tr>
<tr class="memdesc:a66ddbd3c8d0a3512e60a214af6fb4713"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for user-specified builder engine.  <a href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a66ddbd3c8d0a3512e60a214af6fb4713">More...</a><br /></td></tr>
<tr class="separator:a66ddbd3c8d0a3512e60a214af6fb4713"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b0d864f297026952728c9bf5f90cb19"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a8b0d864f297026952728c9bf5f90cb19">Internal_msg_body_builder</a> = typename <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#aae507a42f29546fa13075a438d96f3f5">Base::Body::InternalMessageBody::Builder</a></td></tr>
<tr class="memdesc:a8b0d864f297026952728c9bf5f90cb19"><td class="mdescLeft">&#160;</td><td class="mdescRight">In the event <code>*this</code> describes an internally-created message &ndash; for internal purposes, not by the user &ndash; this is the equivalent of <code><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a68188b480ac3c33676b08dce72d92922" title="Short-hand for capnp-generated mutating Builder nested class of Body. See body_root().">Base::Body_builder</a></code> for the internal-message schema.  <a href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a8b0d864f297026952728c9bf5f90cb19">More...</a><br /></td></tr>
<tr class="separator:a8b0d864f297026952728c9bf5f90cb19"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a09b3e80aab955fbe367b8ebdf0fab792"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a09b3e80aab955fbe367b8ebdf0fab792">Msg_mdt_out</a> (const <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a66ddbd3c8d0a3512e60a214af6fb4713">Builder_config</a> &amp;struct_builder_config, const <a class="el" href="namespaceipc_1_1transport_1_1struc.html#a6751c05fb6582a34c7c47ac470c4a48b">Session_token</a> &amp;session_token, <a class="el" href="namespaceipc_1_1transport_1_1struc.html#af7f35fc7588d97a838274fa25700ead9">msg_id_t</a> originating_msg_id_or_none, <a class="el" href="namespaceipc_1_1transport_1_1struc.html#af7f35fc7588d97a838274fa25700ead9">msg_id_t</a> id_or_none, size_t n_serialization_segments_or_none)</td></tr>
<tr class="memdesc:a09b3e80aab955fbe367b8ebdf0fab792"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs out-metadata-message describing a user-created message (not an internal message); or else both describing and containing an internal message (no user-created message associated).  <a href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a09b3e80aab955fbe367b8ebdf0fab792">More...</a><br /></td></tr>
<tr class="separator:a09b3e80aab955fbe367b8ebdf0fab792"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1541fa2c6343cbcddf3feac9fcf67c46"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a8b0d864f297026952728c9bf5f90cb19">Internal_msg_body_builder</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a1541fa2c6343cbcddf3feac9fcf67c46">internal_msg_body_root</a> ()</td></tr>
<tr class="memdesc:a1541fa2c6343cbcddf3feac9fcf67c46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a builder for the internal-message root; to be called only if <code>id_or_none == 0</code> in ctor.  <a href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a1541fa2c6343cbcddf3feac9fcf67c46">More...</a><br /></td></tr>
<tr class="separator:a1541fa2c6343cbcddf3feac9fcf67c46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4dae089f324bbdf98d838ddc70abdc9e"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a49dd99dd16346904de43a7af3dbf5379">Body_builder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a4dae089f324bbdf98d838ddc70abdc9e">body_root</a> () const</td></tr>
<tr class="memdesc:a4dae089f324bbdf98d838ddc70abdc9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Forwards to <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a9894ad7ec2a46641c4b9b86664d0d465" title="The Body root capnp-generated mutator object.">Msg_out::body_root()</a> (<code>const</code> overload).  <a href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a4dae089f324bbdf98d838ddc70abdc9e">More...</a><br /></td></tr>
<tr class="separator:a4dae089f324bbdf98d838ddc70abdc9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a267d8cad7e43fa969c09ae44cf7bafec"><td class="memItemLeft" align="right" valign="top">flow::util::Blob *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a267d8cad7e43fa969c09ae44cf7bafec">emit_serialization</a> (const typename Base::Builder::Session &amp;session, <a class="el" href="namespaceipc.html#aa3192e586cc45d3e7c22463bf2760f89">Error_code</a> *err_code) const</td></tr>
<tr class="memdesc:a267d8cad7e43fa969c09ae44cf7bafec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the serialization in the form of a sequence of 1 <code>Blob</code>.  <a href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a267d8cad7e43fa969c09ae44cf7bafec">More...</a><br /></td></tr>
<tr class="separator:a267d8cad7e43fa969c09ae44cf7bafec"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-types" name="pri-types"></a>
Private Types</h2></td></tr>
<tr class="memitem:a4a497bd79840cf84848ec8512ae0426b"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a4a497bd79840cf84848ec8512ae0426b">Base</a> = <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html">Msg_out</a>&lt; schema::detail::StructuredMessage, typename Struct_builder_config::Builder &gt;</td></tr>
<tr class="memdesc:a4a497bd79840cf84848ec8512ae0426b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Our base class.  <a href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a4a497bd79840cf84848ec8512ae0426b">More...</a><br /></td></tr>
<tr class="separator:a4a497bd79840cf84848ec8512ae0426b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49dd99dd16346904de43a7af3dbf5379"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a49dd99dd16346904de43a7af3dbf5379">Body_builder</a> = typename <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a68188b480ac3c33676b08dce72d92922">Base::Body_builder</a></td></tr>
<tr class="memdesc:a49dd99dd16346904de43a7af3dbf5379"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for capnp-generated mutating <code>Builder</code> nested class of <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#aab352abf2ced76f2bad6700d75290132" title="See struc::Channel::Msg_body.">Body</a>. See <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a9894ad7ec2a46641c4b9b86664d0d465" title="The Body root capnp-generated mutator object.">body_root()</a>.  <a href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a49dd99dd16346904de43a7af3dbf5379">More...</a><br /></td></tr>
<tr class="separator:a49dd99dd16346904de43a7af3dbf5379"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classipc_1_1transport_1_1struc_1_1Msg__out"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classipc_1_1transport_1_1struc_1_1Msg__out')"><img src="closed.png" alt="-"/>&#160;Private Types inherited from <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html">ipc::transport::struc::Msg_out&lt; schema::detail::StructuredMessage, Struct_builder_config::Builder &gt;</a></td></tr>
<tr class="memitem:aab352abf2ced76f2bad6700d75290132 inherit pub_types_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#aab352abf2ced76f2bad6700d75290132">Body</a> = schema::detail::StructuredMessage</td></tr>
<tr class="memdesc:aab352abf2ced76f2bad6700d75290132 inherit pub_types_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="mdescLeft">&#160;</td><td class="mdescRight">See struc::Channel::Msg_body.  <a href="classipc_1_1transport_1_1struc_1_1Msg__out.html#aab352abf2ced76f2bad6700d75290132">More...</a><br /></td></tr>
<tr class="separator:aab352abf2ced76f2bad6700d75290132 inherit pub_types_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68188b480ac3c33676b08dce72d92922 inherit pub_types_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a68188b480ac3c33676b08dce72d92922">Body_builder</a> = typename Body::Builder</td></tr>
<tr class="memdesc:a68188b480ac3c33676b08dce72d92922 inherit pub_types_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for capnp-generated mutating <code>Builder</code> nested class of <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#aab352abf2ced76f2bad6700d75290132" title="See struc::Channel::Msg_body.">Body</a>. See <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a9894ad7ec2a46641c4b9b86664d0d465" title="The Body root capnp-generated mutator object.">body_root()</a>.  <a href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a68188b480ac3c33676b08dce72d92922">More...</a><br /></td></tr>
<tr class="separator:a68188b480ac3c33676b08dce72d92922 inherit pub_types_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae507a42f29546fa13075a438d96f3f5 inherit pub_types_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#aae507a42f29546fa13075a438d96f3f5">Builder</a> = Struct_builder_config::Builder</td></tr>
<tr class="memdesc:aae507a42f29546fa13075a438d96f3f5 inherit pub_types_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for user-specified Struct_builder type.  <a href="classipc_1_1transport_1_1struc_1_1Msg__out.html#aae507a42f29546fa13075a438d96f3f5">More...</a><br /></td></tr>
<tr class="separator:aae507a42f29546fa13075a438d96f3f5 inherit pub_types_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e66b941a2b67ec21087581d1e44f42b inherit pub_types_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a0e66b941a2b67ec21087581d1e44f42b">Builder_config</a> = typename Builder::Config</td></tr>
<tr class="memdesc:a0e66b941a2b67ec21087581d1e44f42b inherit pub_types_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for user-specified Struct_builder::Config.  <a href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a0e66b941a2b67ec21087581d1e44f42b">More...</a><br /></td></tr>
<tr class="separator:a0e66b941a2b67ec21087581d1e44f42b inherit pub_types_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd04d61cf19ad87610598fddbb5d8052 inherit pub_types_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#acd04d61cf19ad87610598fddbb5d8052">Orphanage</a> = ::capnp::Orphanage</td></tr>
<tr class="memdesc:acd04d61cf19ad87610598fddbb5d8052 inherit pub_types_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for capnp orphan factory. See <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a9303c71f8f459ede25ebe0c8f5492393" title="Convenience method that returns a capnp::Orphan factory in the same capnp::MessageBuilder as body_roo...">orphanage()</a>.  <a href="classipc_1_1transport_1_1struc_1_1Msg__out.html#acd04d61cf19ad87610598fddbb5d8052">More...</a><br /></td></tr>
<tr class="separator:acd04d61cf19ad87610598fddbb5d8052 inherit pub_types_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out')"><img src="closed.png" alt="-"/>&#160;Private Member Functions inherited from <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html">ipc::transport::struc::Msg_out&lt; schema::detail::StructuredMessage, Struct_builder_config::Builder &gt;</a></td></tr>
<tr class="memitem:a9d4ab66d2740f40a88f476d46dd04f1e inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a9d4ab66d2740f40a88f476d46dd04f1e">Msg_out</a> (const <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a0e66b941a2b67ec21087581d1e44f42b">Builder_config</a> &amp;struct_builder_config)</td></tr>
<tr class="memdesc:a9d4ab66d2740f40a88f476d46dd04f1e inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates blank <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#aab352abf2ced76f2bad6700d75290132" title="See struc::Channel::Msg_body.">Body</a>-bearing out-message message, with no native handle, all of which can be modified via <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a9894ad7ec2a46641c4b9b86664d0d465" title="The Body root capnp-generated mutator object.">body_root()</a> and the ancillary mutator <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#aced8ef8237617c74aaf06832d1385fed" title="Store the Native_handle (potentially .null(), meaning none) in this out-message; no-ops if the same ....">store_native_handle_or_null()</a>.  <a href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a9d4ab66d2740f40a88f476d46dd04f1e">More...</a><br /></td></tr>
<tr class="separator:a9d4ab66d2740f40a88f476d46dd04f1e inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9738acbcfb431dc1fc0174b42787060b inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a9738acbcfb431dc1fc0174b42787060b">Msg_out</a> (<a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#aae507a42f29546fa13075a438d96f3f5">Builder</a> &amp;&amp;struct_builder)</td></tr>
<tr class="memdesc:a9738acbcfb431dc1fc0174b42787060b inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="mdescLeft">&#160;</td><td class="mdescRight">Advanced technique: Creates message by subsuming the provided already-prepared <code><a class="el" href="classCapnp__msg__builder__interface.html">Capnp_msg_builder_interface</a></code>-bearing, root-initialized-to-<a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#aab352abf2ced76f2bad6700d75290132" title="See struc::Channel::Msg_body.">Body</a> <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#aae507a42f29546fa13075a438d96f3f5" title="Short-hand for user-specified Struct_builder type.">Builder</a> object (which is moved-to <code>*this</code>), with no native handle, all of which can be (further) modified via <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a9894ad7ec2a46641c4b9b86664d0d465" title="The Body root capnp-generated mutator object.">body_root()</a> and the ancillary mutator <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#aced8ef8237617c74aaf06832d1385fed" title="Store the Native_handle (potentially .null(), meaning none) in this out-message; no-ops if the same ....">store_native_handle_or_null()</a>.  <a href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a9738acbcfb431dc1fc0174b42787060b">More...</a><br /></td></tr>
<tr class="separator:a9738acbcfb431dc1fc0174b42787060b inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9289790ac6b85681c8697fc55ff8f3a7 inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a9289790ac6b85681c8697fc55ff8f3a7">Msg_out</a> ()</td></tr>
<tr class="memdesc:a9289790ac6b85681c8697fc55ff8f3a7 inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates non-message; any operation except move-to or destruction results in undefined behavior subsequently.  <a href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a9289790ac6b85681c8697fc55ff8f3a7">More...</a><br /></td></tr>
<tr class="separator:a9289790ac6b85681c8697fc55ff8f3a7 inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50c8fd96304e09aaf9bbacd9959c07d6 inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a50c8fd96304e09aaf9bbacd9959c07d6">Msg_out</a> (<a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html">Msg_out</a> &amp;&amp;src)</td></tr>
<tr class="memdesc:a50c8fd96304e09aaf9bbacd9959c07d6 inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move ctor: Make <code>*this</code> equal to <code>src</code>, while <code>src</code> becomes as-if default-cted (in that any operation except move-to or destruction results in undefined behavior subsequently).  <a href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a50c8fd96304e09aaf9bbacd9959c07d6">More...</a><br /></td></tr>
<tr class="separator:a50c8fd96304e09aaf9bbacd9959c07d6 inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e5271db0ea2b86ec4c68a91c60dd17a inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memItemLeft" align="right" valign="top"><a id="a9e5271db0ea2b86ec4c68a91c60dd17a" name="a9e5271db0ea2b86ec4c68a91c60dd17a"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>Msg_out</b> (const <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html">Msg_out</a> &amp;)=delete</td></tr>
<tr class="memdesc:a9e5271db0ea2b86ec4c68a91c60dd17a inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disallow copying. <br /></td></tr>
<tr class="separator:a9e5271db0ea2b86ec4c68a91c60dd17a inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6fe17e3ce3e3569e7b08538f525918e9 inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a6fe17e3ce3e3569e7b08538f525918e9">~Msg_out</a> ()</td></tr>
<tr class="memdesc:a6fe17e3ce3e3569e7b08538f525918e9 inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns resources, including potentially significant RAM resources and <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#ae033461f1404be60262033bafcfaccba" title="Returns whatever was the last word according to store_native_handle_or_null().">native_handle_or_null()</a>, taken throughout; in the case of SHM-based RAM resources their return may be delayed until counterpart <code>Msg_in</code>s are also destroyed.  <a href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a6fe17e3ce3e3569e7b08538f525918e9">More...</a><br /></td></tr>
<tr class="separator:a6fe17e3ce3e3569e7b08538f525918e9 inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a9b086eedafe0a5fc71695812677cdb inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html">Msg_out</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a6a9b086eedafe0a5fc71695812677cdb">operator=</a> (<a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html">Msg_out</a> &amp;&amp;src)</td></tr>
<tr class="memdesc:a6a9b086eedafe0a5fc71695812677cdb inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment: Destroy <code>*this</code> contents; make <code>*this</code> equal to <code>src</code>, while <code>src</code> becomes as-if default-cted (in that any operation except move-to or destruction results in undefined behavior subsequently).  <a href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a6a9b086eedafe0a5fc71695812677cdb">More...</a><br /></td></tr>
<tr class="separator:a6a9b086eedafe0a5fc71695812677cdb inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53a9746fdabdefcaf1f9bf63c81c6d85 inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memItemLeft" align="right" valign="top"><a id="a53a9746fdabdefcaf1f9bf63c81c6d85" name="a53a9746fdabdefcaf1f9bf63c81c6d85"></a>
<a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html">Msg_out</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html">Msg_out</a> &amp;)=delete</td></tr>
<tr class="memdesc:a53a9746fdabdefcaf1f9bf63c81c6d85 inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disallow copying. <br /></td></tr>
<tr class="separator:a53a9746fdabdefcaf1f9bf63c81c6d85 inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9894ad7ec2a46641c4b9b86664d0d465 inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a68188b480ac3c33676b08dce72d92922">Body_builder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a9894ad7ec2a46641c4b9b86664d0d465">body_root</a> ()</td></tr>
<tr class="memdesc:a9894ad7ec2a46641c4b9b86664d0d465 inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#aab352abf2ced76f2bad6700d75290132" title="See struc::Channel::Msg_body.">Body</a> root capnp-generated mutator object.  <a href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a9894ad7ec2a46641c4b9b86664d0d465">More...</a><br /></td></tr>
<tr class="separator:a9894ad7ec2a46641c4b9b86664d0d465 inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66eade858d6b311d6e2d633b43ee71ad inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a68188b480ac3c33676b08dce72d92922">Body_builder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a66eade858d6b311d6e2d633b43ee71ad">body_root</a> () const</td></tr>
<tr class="memdesc:a66eade858d6b311d6e2d633b43ee71ad inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="mdescLeft">&#160;</td><td class="mdescRight">Equivalent to the other <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a9894ad7ec2a46641c4b9b86664d0d465" title="The Body root capnp-generated mutator object.">body_root()</a> overload but immutable version.  <a href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a66eade858d6b311d6e2d633b43ee71ad">More...</a><br /></td></tr>
<tr class="separator:a66eade858d6b311d6e2d633b43ee71ad inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9303c71f8f459ede25ebe0c8f5492393 inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#acd04d61cf19ad87610598fddbb5d8052">Orphanage</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a9303c71f8f459ede25ebe0c8f5492393">orphanage</a> ()</td></tr>
<tr class="memdesc:a9303c71f8f459ede25ebe0c8f5492393 inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience method that returns a <code>capnp::Orphan</code> factory in the same <code>capnp::MessageBuilder</code> as <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a9894ad7ec2a46641c4b9b86664d0d465" title="The Body root capnp-generated mutator object.">body_root()</a>.  <a href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a9303c71f8f459ede25ebe0c8f5492393">More...</a><br /></td></tr>
<tr class="separator:a9303c71f8f459ede25ebe0c8f5492393 inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aced8ef8237617c74aaf06832d1385fed inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#aced8ef8237617c74aaf06832d1385fed">store_native_handle_or_null</a> (<a class="el" href="namespaceipc_1_1transport.html#a7ee4551983d9df16ec16a3139bac50e8">Native_handle</a> &amp;&amp;<a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#ae033461f1404be60262033bafcfaccba">native_handle_or_null</a>)</td></tr>
<tr class="memdesc:aced8ef8237617c74aaf06832d1385fed inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store the <code>Native_handle</code> (potentially <code>.null()</code>, meaning none) in this out-message; no-ops if the same <code>.m_native_handle</code> already stored; otherwise returns the previously stored native handle to the OS (similarly to dtor).  <a href="classipc_1_1transport_1_1struc_1_1Msg__out.html#aced8ef8237617c74aaf06832d1385fed">More...</a><br /></td></tr>
<tr class="separator:aced8ef8237617c74aaf06832d1385fed inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae033461f1404be60262033bafcfaccba inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceipc_1_1transport.html#a7ee4551983d9df16ec16a3139bac50e8">Native_handle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#ae033461f1404be60262033bafcfaccba">native_handle_or_null</a> () const</td></tr>
<tr class="memdesc:ae033461f1404be60262033bafcfaccba inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whatever was the last word according to <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#aced8ef8237617c74aaf06832d1385fed" title="Store the Native_handle (potentially .null(), meaning none) in this out-message; no-ops if the same ....">store_native_handle_or_null()</a>.  <a href="classipc_1_1transport_1_1struc_1_1Msg__out.html#ae033461f1404be60262033bafcfaccba">More...</a><br /></td></tr>
<tr class="separator:ae033461f1404be60262033bafcfaccba inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a754e0f025f471105d52b3b090c27f1c0 inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a754e0f025f471105d52b3b090c27f1c0">to_ostream</a> (std::ostream *os) const</td></tr>
<tr class="memdesc:a754e0f025f471105d52b3b090c27f1c0 inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints string representation to the given <code>ostream</code>.  <a href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a754e0f025f471105d52b3b090c27f1c0">More...</a><br /></td></tr>
<tr class="separator:a754e0f025f471105d52b3b090c27f1c0 inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91d2575343b28f83e22a71e7f7b3ff40 inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a91d2575343b28f83e22a71e7f7b3ff40">emit_serialization</a> (<a class="el" href="namespaceipc_1_1transport_1_1struc.html#a82a69eaa39cbe8a002de1266f1cbb5cb">Segment_ptrs</a> *target_blobs, const typename Builder::Session &amp;session, <a class="el" href="namespaceipc.html#aa3192e586cc45d3e7c22463bf2760f89">Error_code</a> *err_code) const</td></tr>
<tr class="memdesc:a91d2575343b28f83e22a71e7f7b3ff40 inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the serialization in the form of a sequence of 1+ <code>Blob</code>s.  <a href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a91d2575343b28f83e22a71e7f7b3ff40">More...</a><br /></td></tr>
<tr class="separator:a91d2575343b28f83e22a71e7f7b3ff40 inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb630aeb1bb9e9335631f9e9e6dc25de inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#adb630aeb1bb9e9335631f9e9e6dc25de">n_serialization_segments</a> () const</td></tr>
<tr class="memdesc:adb630aeb1bb9e9335631f9e9e6dc25de inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns what <code>target_blobs.size()</code> would return after calling <code>emit_serialization(&amp;target_blobs)</code> (with an empty <code>target_blobs</code> going-in), right now.  <a href="classipc_1_1transport_1_1struc_1_1Msg__out.html#adb630aeb1bb9e9335631f9e9e6dc25de">More...</a><br /></td></tr>
<tr class="separator:adb630aeb1bb9e9335631f9e9e6dc25de inherit pub_methods_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header related_classipc_1_1transport_1_1struc_1_1Msg__out"><td colspan="2" onclick="javascript:toggleInherit('related_classipc_1_1transport_1_1struc_1_1Msg__out')"><img src="closed.png" alt="-"/>&#160;Related Functions inherited from <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html">ipc::transport::struc::Msg_out&lt; schema::detail::StructuredMessage, Struct_builder_config::Builder &gt;</a></td></tr>
<tr class="memitem:a134e737e55ae825527efd6a9e68bf37e inherit related_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a134e737e55ae825527efd6a9e68bf37e">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html">Msg_out</a>&lt; schema::detail::StructuredMessage, Struct_builder_config::Builder &gt; &amp;val)</td></tr>
<tr class="memdesc:a134e737e55ae825527efd6a9e68bf37e inherit related_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints string representation of the given <code>Msg_out</code> to the given <code>ostream</code>.  <a href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a134e737e55ae825527efd6a9e68bf37e">More...</a><br /></td></tr>
<tr class="separator:a134e737e55ae825527efd6a9e68bf37e inherit related_classipc_1_1transport_1_1struc_1_1Msg__out"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><div class="compoundTemplParams">template&lt;typename Struct_builder_config&gt;<br />
class ipc::transport::struc::Msg_mdt_out&lt; Struct_builder_config &gt;</div><p >Internally used (data-free) addendum on-top of <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html" title="A structured out-message suitable to be sent via struc::Channel::send() (et al).">Msg_out</a>; really an alias to <code><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html" title="A structured out-message suitable to be sent via struc::Channel::send() (et al).">Msg_out</a>&lt;schema::detail::StructuredMessage&gt;</code>, where the latter is the internal-use set of metadata schema, with a convenience public mutating API wrapping around capnp-generated mutator API for things like message ID. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__in.html" title="A structured in-message instance suitable as received and emittable (to user) by struc::Channel.">Msg_in</a> whose <code>public</code> + <code>protected</code> API = essentially the accessor counterpart of <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html" title="Internally used (data-free) addendum on-top of Msg_out; really an alias to Msg_out&lt;schema::detail::St...">Msg_mdt_out</a> and <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a9d4ab66d2740f40a88f476d46dd04f1e" title="Creates blank Body-bearing out-message message, with no native handle, all of which can be modified v...">Msg_out&lt;Message_body&gt;</a> mutator APIs.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">Struct_builder_config</td><td>See <a class="el" href="classipc_1_1transport_1_1struc_1_1Channel.html" title="Owning and wrapping a pre-connected transport::Channel peer (an endpoint of an established channel ov...">struc::Channel</a>. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="msg__mdt__out_8hpp_source.html#l00050">50</a> of file <a class="el" href="msg__mdt__out_8hpp_source.html">msg_mdt_out.hpp</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="a4a497bd79840cf84848ec8512ae0426b" name="a4a497bd79840cf84848ec8512ae0426b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4a497bd79840cf84848ec8512ae0426b">&#9670;&nbsp;</a></span>Base</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Struct_builder_config &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html">ipc::transport::struc::Msg_mdt_out</a>&lt; Struct_builder_config &gt;::Base =  <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html">Msg_out</a>&lt;schema::detail::StructuredMessage, typename Struct_builder_config::Builder&gt;</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Our base class. </p>

<p class="definition">Definition at line <a class="el" href="msg__mdt__out_8hpp_source.html#l00057">57</a> of file <a class="el" href="msg__mdt__out_8hpp_source.html">msg_mdt_out.hpp</a>.</p>

</div>
</div>
<a id="a49dd99dd16346904de43a7af3dbf5379" name="a49dd99dd16346904de43a7af3dbf5379"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a49dd99dd16346904de43a7af3dbf5379">&#9670;&nbsp;</a></span>Body_builder</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Struct_builder_config &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html">ipc::transport::struc::Msg_mdt_out</a>&lt; Struct_builder_config &gt;::Body_builder =  typename <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a68188b480ac3c33676b08dce72d92922">Base::Body_builder</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Short-hand for capnp-generated mutating <code>Builder</code> nested class of <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#aab352abf2ced76f2bad6700d75290132" title="See struc::Channel::Msg_body.">Body</a>. See <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a9894ad7ec2a46641c4b9b86664d0d465" title="The Body root capnp-generated mutator object.">body_root()</a>. </p>

<p class="definition">Definition at line <a class="el" href="msg__mdt__out_8hpp_source.html#l00060">60</a> of file <a class="el" href="msg__mdt__out_8hpp_source.html">msg_mdt_out.hpp</a>.</p>

</div>
</div>
<a id="a66ddbd3c8d0a3512e60a214af6fb4713" name="a66ddbd3c8d0a3512e60a214af6fb4713"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a66ddbd3c8d0a3512e60a214af6fb4713">&#9670;&nbsp;</a></span>Builder_config</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Struct_builder_config &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html">ipc::transport::struc::Msg_mdt_out</a>&lt; Struct_builder_config &gt;::Builder_config =  Struct_builder_config</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Short-hand for user-specified builder engine. </p>

<p class="definition">Definition at line <a class="el" href="msg__mdt__out_8hpp_source.html#l00066">66</a> of file <a class="el" href="msg__mdt__out_8hpp_source.html">msg_mdt_out.hpp</a>.</p>

</div>
</div>
<a id="a8b0d864f297026952728c9bf5f90cb19" name="a8b0d864f297026952728c9bf5f90cb19"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8b0d864f297026952728c9bf5f90cb19">&#9670;&nbsp;</a></span>Internal_msg_body_builder</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Struct_builder_config &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html">ipc::transport::struc::Msg_mdt_out</a>&lt; Struct_builder_config &gt;::Internal_msg_body_builder =  typename <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#aae507a42f29546fa13075a438d96f3f5">Base::Body::InternalMessageBody::Builder</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>In the event <code>*this</code> describes an internally-created message &ndash; for internal purposes, not by the user &ndash; this is the equivalent of <code><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a68188b480ac3c33676b08dce72d92922" title="Short-hand for capnp-generated mutating Builder nested class of Body. See body_root().">Base::Body_builder</a></code> for the internal-message schema. </p>
<p >Refer to structured_msg.capnp for clarity; you'll see a field there that stores either an <code>InternalMessageBody</code> or null. </p>

<p class="definition">Definition at line <a class="el" href="msg__mdt__out_8hpp_source.html#l00074">74</a> of file <a class="el" href="msg__mdt__out_8hpp_source.html">msg_mdt_out.hpp</a>.</p>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a09b3e80aab955fbe367b8ebdf0fab792" name="a09b3e80aab955fbe367b8ebdf0fab792"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a09b3e80aab955fbe367b8ebdf0fab792">&#9670;&nbsp;</a></span>Msg_mdt_out()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Struct_builder_config &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html">ipc::transport::struc::Msg_mdt_out</a>&lt; Struct_builder_config &gt;::Msg_mdt_out </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a66ddbd3c8d0a3512e60a214af6fb4713">Builder_config</a> &amp;&#160;</td>
          <td class="paramname"><em>struct_builder_config</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespaceipc_1_1transport_1_1struc.html#a6751c05fb6582a34c7c47ac470c4a48b">Session_token</a> &amp;&#160;</td>
          <td class="paramname"><em>session_token</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceipc_1_1transport_1_1struc.html#af7f35fc7588d97a838274fa25700ead9">msg_id_t</a>&#160;</td>
          <td class="paramname"><em>originating_msg_id_or_none</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceipc_1_1transport_1_1struc.html#af7f35fc7588d97a838274fa25700ead9">msg_id_t</a>&#160;</td>
          <td class="paramname"><em>id_or_none</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>n_serialization_segments_or_none</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Constructs out-metadata-message describing a user-created message (not an internal message); or else both describing and containing an internal message (no user-created message associated). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">struct_builder_config</td><td>See other ctor. </td></tr>
    <tr><td class="paramname">session_token</td><td>See other ctor. </td></tr>
    <tr><td class="paramname">originating_msg_id_or_none</td><td>0 if the message is unsolicited; else the message ID of the out-message to which this is responding. </td></tr>
    <tr><td class="paramname">id_or_none</td><td>Out-message ID; 0 if internal message. </td></tr>
    <tr><td class="paramname">n_serialization_segments_or_none</td><td><h1>of segments serializing the user-created message described by <code>*this</code>; ignored</h1>
</td></tr>
  </table>
  </dd>
</dl>
<p>if <code>id_or_none == 0</code>. </p>

<p class="definition">Definition at line <a class="el" href="msg__mdt__out_8hpp_source.html#l00144">144</a> of file <a class="el" href="msg__mdt__out_8hpp_source.html">msg_mdt_out.hpp</a>.</p>

<p class="reference">References <a class="el" href="msg_8hpp_source.html#l01018">ipc::transport::struc::Msg_out&lt; Message_body, Struct_builder_t &gt;::body_root()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classipc_1_1transport_1_1struc_1_1Msg__mdt__out_a09b3e80aab955fbe367b8ebdf0fab792_cgraph.svg" width="376" height="47"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a4dae089f324bbdf98d838ddc70abdc9e" name="a4dae089f324bbdf98d838ddc70abdc9e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4dae089f324bbdf98d838ddc70abdc9e">&#9670;&nbsp;</a></span>body_root()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Struct_builder_config &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html">Msg_mdt_out</a>&lt; Struct_builder_config &gt;<a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a49dd99dd16346904de43a7af3dbf5379">::Body_builder</a> * <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html">ipc::transport::struc::Msg_mdt_out</a>&lt; Struct_builder_config &gt;::body_root</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Forwards to <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a9894ad7ec2a46641c4b9b86664d0d465" title="The Body root capnp-generated mutator object.">Msg_out::body_root()</a> (<code>const</code> overload). </p>
<p >May be useful for, say, pretty-printing it to log (e.g.: <code>capnp::prettyPrint(M.body_root()-&gt;asReader()).flatten().cStr()</code>).</p>
<dl class="section return"><dt>Returns</dt><dd>See above. </dd></dl>

<p class="definition">Definition at line <a class="el" href="msg__mdt__out_8hpp_source.html#l00201">201</a> of file <a class="el" href="msg__mdt__out_8hpp_source.html">msg_mdt_out.hpp</a>.</p>

<p class="reference">Referenced by <a class="el" href="ipc__transport__structured_2src_2ipc_2transport_2struc_2sync__io_2channel_8hpp_source.html#l04361">ipc::transport::struc::sync_io::Channel&lt; Channel_obj, Message_body, Struct_builder_config, Struct_reader_config &gt;::send_core()</a>.</p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classipc_1_1transport_1_1struc_1_1Msg__mdt__out_a4dae089f324bbdf98d838ddc70abdc9e_icgraph.svg" width="408" height="47"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a267d8cad7e43fa969c09ae44cf7bafec" name="a267d8cad7e43fa969c09ae44cf7bafec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a267d8cad7e43fa969c09ae44cf7bafec">&#9670;&nbsp;</a></span>emit_serialization()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Struct_builder_config &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">flow::util::Blob * <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html">ipc::transport::struc::Msg_mdt_out</a>&lt; Struct_builder_config &gt;::emit_serialization </td>
          <td>(</td>
          <td class="paramtype">const typename Base::Builder::Session &amp;&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceipc.html#aa3192e586cc45d3e7c22463bf2760f89">Error_code</a> *&#160;</td>
          <td class="paramname"><em>err_code</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the serialization in the form of a sequence of 1 <code>Blob</code>. </p>
<p >Behavior is undefined if it is called more than once. (In reality it's probably fine, but this internal type and its API aren't meant for that, so it's easier to just say that and not worry about it.)</p>
<h3>Wait, why 1 Blob?</h3>
<p >This is an internal-use structure, and we've ensured "heuristically" it'll fit in any reasonable segment.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">err_code</td><td>See <code>flow::Error_code</code> docs for error reporting semantics. See <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a91d2575343b28f83e22a71e7f7b3ff40" title="Returns the serialization in the form of a sequence of 1+ Blobs.">Msg_out::emit_serialization()</a> which is the core of this guy here. </td></tr>
    <tr><td class="paramname">session</td><td>Specifies the opposing recipient for which the serialization is intended. See <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a91d2575343b28f83e22a71e7f7b3ff40" title="Returns the serialization in the form of a sequence of 1+ Blobs.">Msg_out::emit_serialization()</a> which is the core of this guy here. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>What <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html#a91d2575343b28f83e22a71e7f7b3ff40" title="Returns the serialization in the form of a sequence of 1+ Blobs.">Msg_out::emit_serialization()</a> would have placed in the target list container; or null if it would have failed. In case of success: In our case that container must have size 1, so we just return that first element. </dd></dl>

<p class="definition">Definition at line <a class="el" href="msg__mdt__out_8hpp_source.html#l00207">207</a> of file <a class="el" href="msg__mdt__out_8hpp_source.html">msg_mdt_out.hpp</a>.</p>

<p class="reference">Referenced by <a class="el" href="ipc__transport__structured_2src_2ipc_2transport_2struc_2sync__io_2channel_8hpp_source.html#l04361">ipc::transport::struc::sync_io::Channel&lt; Channel_obj, Message_body, Struct_builder_config, Struct_reader_config &gt;::send_core()</a>.</p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classipc_1_1transport_1_1struc_1_1Msg__mdt__out_a267d8cad7e43fa969c09ae44cf7bafec_icgraph.svg" width="451" height="47"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a1541fa2c6343cbcddf3feac9fcf67c46" name="a1541fa2c6343cbcddf3feac9fcf67c46"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1541fa2c6343cbcddf3feac9fcf67c46">&#9670;&nbsp;</a></span>internal_msg_body_root()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Struct_builder_config &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html">Msg_mdt_out</a>&lt; Struct_builder_config &gt;<a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a8b0d864f297026952728c9bf5f90cb19">::Internal_msg_body_builder</a> <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html">ipc::transport::struc::Msg_mdt_out</a>&lt; Struct_builder_config &gt;::internal_msg_body_root</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns a builder for the internal-message root; to be called only if <code>id_or_none == 0</code> in ctor. </p>
<p >(Behavior undefined/assertion may trip otherwise.) See <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a8b0d864f297026952728c9bf5f90cb19" title="In the event *this describes an internally-created message – for internal purposes,...">Internal_msg_body_builder</a> doc header.</p>
<p >We could return a pointer to something stored, but as of this writing such an optimization would be pointless, as it's really invoked just once in practice.</p>
<dl class="section return"><dt>Returns</dt><dd>See above. </dd></dl>

<p class="definition">Definition at line <a class="el" href="msg__mdt__out_8hpp_source.html#l00194">194</a> of file <a class="el" href="msg__mdt__out_8hpp_source.html">msg_mdt_out.hpp</a>.</p>

<p class="reference">Referenced by <a class="el" href="ipc__transport__structured_2src_2ipc_2transport_2struc_2sync__io_2channel_8hpp_source.html#l04029">ipc::transport::struc::sync_io::Channel&lt; Channel_obj, Message_body, Struct_builder_config, Struct_reader_config &gt;::rcv_struct_inform_of_unexpected_response()</a>.</p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classipc_1_1transport_1_1struc_1_1Msg__mdt__out_a1541fa2c6343cbcddf3feac9fcf67c46_icgraph.svg" width="392" height="71"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>transport/struc/detail/<a class="el" href="msg__mdt__out_8hpp_source.html">msg_mdt_out.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 11 2025 20:02:27 for Flow-IPC by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
